CROSS_COMPILE ?= 
AR=$(CROSS_COMPILE)ar
CC=$(CROSS_COMPILE)gcc
CXX=$(CROSS_COMPILE)g++
LD=$(CROSS_COMPILE)ld
NM=$(CROSS_COMPILE)nm
STRIP=$(CROSS_COMPILE)strip
ADDR2LINE=$(CROSS_COMPILE)addr2line

PREFIX ?= ./build
BIN_DIR = $(PREFIX)/bin
LIB_DIR = $(PREFIX)/lib
INC_DIR = $(PREFIX)/include
OBJ_DIR = $(PREFIX)/obj

HOST ?=

# 生成目标文件
# TARGET = $(LIB_DIR)/libtest.a

# 创建中间文件生成目录
$(shell mkdir -p $(BIN_DIR))
$(shell mkdir -p $(LIB_DIR))
$(shell mkdir -p $(INC_DIR))
$(shell mkdir -p $(OBJ_DIR))

SRC_DIR	:= .
# 扫描头文件
HEADERS := $(wildcard ${SRC_DIR}/*.h) $(wildcard ${SRC_DIR}/*.hh)

# 扫描源文件
SOURCES := $(wildcard ${SRC_DIR}/*.c) $(wildcard ${SRC_DIR}/*.cpp)

# 添加源文件中间文件
OBJS    := $(patsubst ${SRC_DIR}/%.c, ${OBJ_DIR}/%.o, $(patsubst ${SRC_DIR}/%.cpp, ${OBJ_DIR}/%.o, $(SOURCES)))

CFLAGS += -I. -I$(INC_DIR) -ffunction-sections -fdata-sections

.PHONY: all clean install

all: install

clean:

install:$(HEADERS)
	@cp $(HEADERS) $(INC_DIR)

# 生成目标文件
# $(TARGET):$(OBJS) $(HEADERS)
# 	@$(AR) -rcs $@ $(OBJS)

# 编译工程文件
$(OBJ_DIR)/%.o:$(SRC_DIR)/%.c
	@$(CXX) -o $@ -c  $^ $(CFLAGS)

$(OBJ_DIR)/%.o:${SRC_DIR}/%.cpp
	@$(CXX) -o $@ -c  $^ $(CFLAGS)

